基于像素点分类优化DnCNN

133次阅读
没有评论

共计 751 个字符,预计需要花费 2 分钟才能阅读完成。

提醒:本文最后更新于 2024-08-30 15:59,文中所关联的信息可能已发生改变,请知悉!

概述

对 DnCNN 算法进行优化

DnCNN 算法基于残差思想进行降噪,那么利用手工方法将“大概率噪声”“大概率非噪声”“其他”分类后进行训练,可能会有更好的效果

分析

原先拟通过修改 loss 函数的方式来完成上述过程,但实际上 DnCNN 的 loss 函数直接调用了 pytorch 的 mse 方法,如下:

torch.nn.functional.mse_loss(input, target, size_average=None, reduce=None, reduction='sum').div_(2)

其 loss 函数是对图像整体进行黑盒运算,所以现在采用一种等效方法。

原图 X + noise = 噪声图 Y

Y 中必然含有“大概率噪声 A”“大概率非噪声 B”“其他 C”,那么可以简单生成三张子图,如取“大概率噪声 A”和 X 中与 B、C 对应的像素就可以生成一张子图,当取 B 或 C 时,也以此类推

若如此做,便在实际意义上也是对这三类像素分开进行训练

训练结果

没有修改原训练参数,默认训练 180 epochs

180 1860 / 1862 loss = 1.2376

测试结果

本次训练

2022-10-17 02:27:21: Datset: Set68      
  PSNR = 29.23dB, SSIM = 0.9019
2022-10-17 02:27:23: Datset: Set12      
  PSNR = 30.45dB, SSIM = 0.9300

原模型

2022-10-17 02:32:16: Datset: Set68      
  PSNR = 29.24dB, SSIM = 0.9020
2022-10-17 02:32:16: Datset: Set12      
  PSNR = 30.46dB, SSIM = 0.9300

对于本套测试集来说测试结果没有明显差异

由于 python 版本、pytorch 版本、noise 随机差异等的不同,此种变化在误差范围内

正文完
 0
icvuln
版权声明:本站原创文章,由 icvuln 于2022-10-16发表,共计751字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)